Description

This document provides an overview of the Unispec Data collected by terrestrial RA Ruby An in 2017, 2018, 2019, and 2020.

2017 Data Collection Notes

Unispec Data was collected approximately weekly. Unispec locations were changed by Jim and Ruby from historic locations to standardized spots, mainly outside of the destructive zones. See —- file for map comparison.

INSTRUMENT PROTOCOL LOCATIONS DATA

Instrument Status:

On – the XXX foreoptic broke at the Shrub plots. Look for inconsistenies here with the rest of the season.

Data File Descriptions

2018 Data Collection Notes

Unispec data was collected when weather permitted, weekly if possible. The summer was exceptionally rainy and vegetation was often wet, restricting the possible sampling times. At the end of the season, silver circular tags were nailed to the boardwalk at each unispec location (where line-segment perpendicular to the edge of the plot hit the boardwalk). This location was determined by measuring with a string and measuring tape along the plot edge between the wooden stakes marking each 5m segment of the plot.

Drone data was collected in 2018 in conjunction with unispec measurements; however, this data

Instrument Status

turned out to be unusable due to a calibration error of the drone sensor.

Data File Descriptions

2019 Data Collection Notes

Unispec data was collected approximately weekly. The MAT06 & MAT89 sites given highest priority, the historic and wet sedge least so. The SHB89 sites were only unispec’d once. On —- 15 scans were made per plot for comparison purposes. On —- the default number of scans per plot was increased from 5 to 10 for all sites. It took a couple tries to land on “the most efficient” 10 spots to take the scans, so there is some variability over the course of the summer on where these “additional” measurements were made in each plot.

Instrument Status

Data File Descriptions

The data collected in 2019 is saved in the following 4 files.

  1. 2019_raw_spu_metadata.csv (instrument settings per .spu file)
  2. 2019_raw_spu_data.rds (raw spectra)
  3. 2019_processed_spu_data.rds (corrected spectra)
  4. 2019_index_data.csv (calculated vegetation indices)

Metadata correspondence key of scan (.spu file) to sample location.

  1. 2019_unispec_coordinate_key.csv (no spu_filename column)
  2. 2019_unispec_file_key.csv (spu_filename column)

Summary file for analysis

  1. 2019_unispec_data_summary.rds

File Summaries

## This chunk of code tallies the number of files in the raw, processed, and index data dataframes and displays the output in a table. 

## Raw Data summary

spu_dataframe <- full_join(spu_spectra, spu_key) %>% 
  mutate(DateTime = with_tz(DateTime, "US/Alaska")) %>% 
  
  # Add Date & ARC-LTER Site
  mutate(Date = lubridate::date(DateTime)) %>% 
  mutate(Site = str_extract(spu_filename, "([A-Z]{3,8}[0-9]*)(?=_)")) %>% # DOES NOT WORK FOR "MAT-SH" measurements
  mutate(Site = ifelse(str_detect(spu_filename, "MAT-SH"), "MAT-SH", Site))
## Joining, by = c("spu_filename", "DateTime")
raw_files <- spu_dataframe %>%   group_by(Date, Site) %>%
  summarize(Raw_Files = n_distinct(spu_filename))
## `summarise()` has grouped output by 'Date'. You can override using the `.groups` argument.
## Processed Data summary
processed_files <- left_join(processed_spectra, spu_key) %>%
  
  # Add Date & ARC-LTER Site
  mutate(DateTime = with_tz(DateTime, "US/Alaska")) %>% 
  mutate(Date = lubridate::date(DateTime)) %>% 
  mutate(Site = str_extract(spu_filename, "([A-Z]{3,8}[0-9]*)(?=_)")) %>% # DOES NOT WORK FOR "MAT-SH" measurements
  mutate(Site = ifelse(str_detect(spu_filename, "MAT-SH"), "MAT-SH", Site)) %>% 
  
  ## Summarize
  group_by(Date, Site) %>%
  summarize(Processed_Files = n_distinct(spu_filename))
## Joining, by = c("spu_filename", "DateTime")
## `summarise()` has grouped output by 'Date'. You can override using the `.groups` argument.
## Index Data summary
index_files <- left_join(index_data, spu_key) %>%   
  
  # Add Date & ARC-LTER Site
  mutate(DateTime = with_tz(DateTime, "US/Alaska")) %>% 
  mutate(Date = lubridate::date(DateTime)) %>% 
  mutate(Site = str_extract(spu_filename, "([A-Z]{3,8}[0-9]*)(?=_)")) %>% # DOES NOT WORK FOR "MAT-SH" measurements
  mutate(Site = ifelse(str_detect(spu_filename, "MAT-SH"), "MAT-SH", Site)) %>% 
  
  ## Summarize
  group_by(Date, Site) %>%
  summarize(Index_Files = n_distinct(spu_filename))
## Joining, by = c("spu_filename", "DateTime")
## `summarise()` has grouped output by 'Date'. You can override using the `.groups` argument.
## DISPLAY
kable(full_join(raw_files, processed_files) %>% full_join(index_files) %>% arrange(Date, Site))
## Joining, by = c("Date", "Site")
## Joining, by = c("Date", "Site")
Date Site Raw_Files Processed_Files Index_Files
2019-06-02 LMAT 246 244 239
2019-06-02 MAT 122 121 116
2019-06-02 TEST 22 20 15
2019-06-08 DHT 171 170 165
2019-06-08 LMAT 50 50 50
2019-06-08 WSG1 31 30 25
2019-06-11 EDC 16 NA NA
2019-06-11 LMAT 186 185 180
2019-06-11 MAT 100 100 100
2019-06-11 SHB2 26 25 20
2019-06-11 WSG23 46 45 40
2019-06-15 DHT 171 170 165
2019-06-15 HIST 46 45 40
2019-06-15 MNAT 90 90 90
2019-06-15 NANT 66 65 60
2019-06-18 LMAT 558 556 546
2019-06-18 MAT 307 307 300
2019-06-18 WSG1 60 60 50
2019-06-19 WSG23 101 90 80
2019-06-20 MNAT 255 255 240
2019-06-20 NANT 191 190 180
2019-06-21 DHT 244 242 232
2019-06-22 DHT 146 119 109
2019-06-22 HIST 203 195 175
2019-06-24 LMAT 40 NA NA
2019-06-26 COMP 113 112 107
2019-06-26 LMAT 186 186 181
2019-06-26 MAT 226 225 220
2019-06-27 LMAT 159 155 150
2019-06-27 MNAT 131 130 120
2019-07-02 DHT 171 170 165
2019-07-02 HIST 131 125 120
2019-07-02 LMAT 306 305 290
2019-07-02 LMATEDC 9 NA NA
2019-07-02 MAT 231 226 220
2019-07-02 MAT-SH 38 37 32
2019-07-04 MNAT 131 130 120
2019-07-04 NANT 140 140 130
2019-07-06 LMAT 76 75 70
2019-07-06 LMATEDC 3 NA NA
2019-07-06 WSG1 56 55 45
2019-07-08 MAT 22 20 15
2019-07-09 LMAT 286 285 280
2019-07-09 LMATEDC 6 NA NA
2019-07-09 MAT 227 225 220
2019-07-12 DHT 191 190 180
2019-07-12 HIST 131 130 120
2019-07-12 LMAT 91 90 70
2019-07-12 MNAT 131 130 120
2019-07-15 DHT 26 25 20
2019-07-15 LMAT 51 50 40
2019-07-15 TEST 94 80 80
2019-07-18 LMAT 292 290 280
2019-07-18 MAT 226 225 220
2019-07-22 MNAT 51 50 40
2019-07-22 NANT 45 45 40
2019-07-23 DHT 201 200 195
2019-07-23 HIST 131 130 120
2019-07-23 WSG23 86 85 80
2019-07-24 MAT 226 225 220
2019-07-25 EDC 6 NA NA
2019-07-25 LMAT 291 290 280
2019-07-30 MNAT 141 140 120
2019-07-30 NANT 135 135 120
2019-07-31 DHT 77 75 65
2019-07-31 HIST 46 45 40
2019-07-31 LMAT 81 80 70
2019-07-31 MAT 62 60 55
2019-07-31 WSG1 61 60 50
2019-08-02 LMAT 291 290 280
2019-08-02 LMATEDC 6 NA NA
2019-08-02 MAT 226 225 220
2019-08-05 DHT 206 205 195
2019-08-07 LMAT 290 290 280
2019-08-07 MAT 226 225 220
2019-08-07 MNAT 131 130 120
2019-08-10 HIST 131 130 120
2019-08-16 DHT 226 225 215
2019-08-16 LMAT 347 346 320
2019-08-16 LMATEDC 6 6 6
2019-08-16 MAT 344 342 317
2019-08-16 MNAT 172 171 161
2019-08-16 NANT 131 131 120

Code chunks:

  1. Correct Spectra
  2. Calculate Indices
  3. Format data for analyses / storage
  4. Format data for visualization

For Shiny

## Joining, by = c("spu_filename", "DateTime")
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

2020 Data Collection Notes

Unispec data collected once at the following sites:

  • Sites: MAT06, MAT89, DHT89, MNT97, MNN97, WSG89
  • Dates: 2020-07-16 to 2020-07-19
  • Protocol: 10/plot using Unispec-DC and new field keys (SHB89: RapidScan 5/plot) Data Processing: “UnispecR” git-hub repository, piloted shiny-app

Instrument Status

Unispec performed fine. The downward facing foreoptic seemed to be breaking a bit at the joint to the metal. However, checking the Darkscans it didn’t seem like any light was leaking in.

Data File Descriptions